<?php
$pubkey=file_get_contents('rsa_1024_pub.pem');
$title='沙子告急！2060年全球需求飙升45% “沙子危机”正袭来';
$content=<<<st
参考消息网4月2日报道据英国《新科学家》周刊网站近日报道，研究人员称，人类对沙的需求可能在40年内飙升45%。他们认为，不加节制的消费可能会破坏环境，并导致这种城市扩展的关键材料短缺。

报道称，用于制造混凝土、玻璃和其他重要建筑材料的建筑用砂的需求不断增长，已经导致“沙海盗”大量出现，印度尼西亚的数十个岛屿因为肆无忌惮的采砂行为正在消失。

荷兰莱顿大学的钟晓阳（音）和他的同事日前计算得出，全球建筑用砂需求将从2020年的每年32亿吨飙升至2060年的46亿吨，其中非洲和亚洲地区居首。这一数字是基于未来人口增长和经济发展的核心情境，并利用混凝土和玻璃的消耗量以及建筑物所需建筑面积的估算进行了建模。

但是研究人员对于现存的沙储量没有可靠的估算，因此尚不清楚世界能否维持如此大规模的增长。钟晓阳说：“沙和沙危机遭到了忽视，这正在造成严重的环境问题和社会后果。如果我们现在不采取行动，我们可能将没有足够的沙来发展我们的城市。”

报道还称，钟晓阳团队发现，如果各国实施一系列措施，包括延长建筑物的使用寿命、再利用混凝土、创造更轻量化的建筑设计和使用木框架等替代材料，则可以避免2060年预计消耗量的一半左右。

根据该模型，更有效地利用空间可能最大程度地减少建筑用砂的使用量，如在建筑物中每个人分配更少的居住使用面积和共享办公室等。

该研究仅关注了用于制造玻璃和混凝土的沙，因此总体上低估了未来的总需求量，也缺乏所研究的世界26个地区的沙消耗量的精细数据，而且不够详细，因此不能反映国家层面的细分情况。

如果再不采取行动，将会首先加剧湖泊和河流中沙储量的现有环境压力，但不应排除会出现绝对短缺的情况。钟晓阳说：“这种激增的需求能否得到满足将非常值得怀疑。”（编译/张琳）
st;
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="jquery-2.0.2.min.js"></script>
    <script src="jquery.form.js"></script>
    <script src="jsencrypt.min.js"></script>
    <!--<script src="md5.min.js"></script>-->
    <script src="crypto-js.js"></script>
    <style>
    input[type=text]{
		width:400px;	
	}
    </style>
</head>
<body>
<pre>
参考消息网4月2日报道据英国《新科学家》周刊网站近日报道，研究人员称，人类对沙的需求可能在40年内飙升45%。他们认为，不加节制的消费可能会破坏环境，并导致这种城市扩展的关键材料短缺。

报道称，用于制造混凝土、玻璃和其他重要建筑材料的建筑用砂的需求不断增长，已经导致“沙海盗”大量出现，印度尼西亚的数十个岛屿因为肆无忌惮的采砂行为正在消失。

荷兰莱顿大学的钟晓阳（音）和他的同事日前计算得出，全球建筑用砂需求将从2020年的每年32亿吨飙升至2060年的46亿吨，其中非洲和亚洲地区居首。这一数字是基于未来人口增长和经济发展的核心情境，并利用混凝土和玻璃的消耗量以及建筑物所需建筑面积的估算进行了建模。

但是研究人员对于现存的沙储量没有可靠的估算，因此尚不清楚世界能否维持如此大规模的增长。钟晓阳说：“沙和沙危机遭到了忽视，这正在造成严重的环境问题和社会后果。如果我们现在不采取行动，我们可能将没有足够的沙来发展我们的城市。”

报道还称，钟晓阳团队发现，如果各国实施一系列措施，包括延长建筑物的使用寿命、再利用混凝土、创造更轻量化的建筑设计和使用木框架等替代材料，则可以避免2060年预计消耗量的一半左右。

根据该模型，更有效地利用空间可能最大程度地减少建筑用砂的使用量，如在建筑物中每个人分配更少的居住使用面积和共享办公室等。

该研究仅关注了用于制造玻璃和混凝土的沙，因此总体上低估了未来的总需求量，也缺乏所研究的世界26个地区的沙消耗量的精细数据，而且不够详细，因此不能反映国家层面的细分情况。

如果再不采取行动，将会首先加剧湖泊和河流中沙储量的现有环境压力，但不应排除会出现绝对短缺的情况。钟晓阳说：“这种激增的需求能否得到满足将非常值得怀疑。”（编译/张琳）

使用RSA秘钥生成工具生成一对公钥(A)和私钥(B)，前端保留A，后端保留B。

前端发送数据时，先生成一串随机16位字符串作为AES的秘钥(C)，然后使用A使用RSA算法对C进行加密，得到加密后的AES秘钥(D)。将要发送的数据(E)用C使用AES加密，得到密文(F)。将D和F一同发给后端进行处理。

后端处理数据时，先用B对D使用RSA进行解密得到C，用C对F使用AES进行解密得到E，处理后得到结果G，再用C对G进行AES加密得到H，将H返回给前端。

前端接收到H后用C进行解密，得到处理的结果G。

因为对数据进行加密的AES秘钥是每次请求随机生成的，而且传输过程中AES是使用非对称加密的，只要后端持有的RSA私钥不泄露即可保证数据通信安全。
</pre>
<h3 style="text-align:center;">编辑文章</h3>
<textarea name="" id="pubkey" cols="30" rows="10"><?php echo $pubkey;?></textarea>
<form action="server.php" method="post" id="myform">
<table width="98%" border="1">
  <tbody>
    <tr>
      <td align="right">标题</td>
      <td><input type="text" name="title" id="title" value="<?php echo $title;?>"></td>
    </tr>
    <tr>
      <td align="right">内容</td>
      <td><textarea name="content" id="content" cols="50" rows="10"><?php echo $content;?></textarea></td>
    </tr>
    <tr>
      <td align="right">状态</td>
      <td>
      <label><input type="radio" name="flag" value="1" checked>显示</label>
      <label><input type="radio" name="flag" value="2">隐藏</label>
      </td>
    </tr>
    <tr>
      <td colspan="2" align="center"><input type="submit" value="提交"  name="submit"></td>
    </tr>
  </tbody>
</table>
</form>
<div id="result" style="width:600px;height:600px;margin:0 auto;overflow:auto;">
</div>
<script>
function create_key(){
	return CryptoJS.MD5(String(Math.random())).toString().substr(0,16);
}
//https://www.npmjs.com/package/jsencrypt
function rsa_encode(key){
	// Encrypt with the public key...
	var encrypt = new JSEncrypt();
	encrypt.setPublicKey($('#pubkey').val());
	return encrypt.encrypt(key);
}
//https://www.npmjs.com/package/crypto-js
function aes_encode(key,iv){
	var str=$('#myform').serialize();
	return CryptoJS.AES.encrypt(str,CryptoJS.enc.Utf8.parse(key),{	
		iv: CryptoJS.enc.Utf8.parse(iv),
		mode:CryptoJS.mode.CBC,
		padding:CryptoJS.pad.ZeroPadding     	
	}).toString();
}
$(document).ready(function(e) {
	$('#myform').submit(function(){
		var key=create_key();
		var iv=create_key();
		
		console.log(key);
		console.log(iv);
		console.log(rsa_encode(key));
		console.log(aes_encode(key,iv));
	
		var options = {
			data:{
				__key__:rsa_encode(key),
				__iv__:rsa_encode(iv),
				__token__:aes_encode(key,iv),
			},
			type: "post",
			beforeSubmit: function(){
				
			},
			success: function(data){
				console.log(data);
				$('#result').html(data);
			},
			dataType: "html",
			clearForm: false,
			resetForm: false,
			timeout: 5000
		};
		$(this).ajaxSubmit(options);
		
		return false;	
	});
});
</script>
</body>
</html>